﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace LI4
{
    public partial class pesquisarCursoDistrito : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (distritoLB.Items.Count < 1)
            {
                localidadeLB.Items.Clear();
                ArrayList distritos = new ArrayList();
                Data.Distrito dist = new Data.Distrito();
                distritos = dist.getDistritos();

                foreach (Business.Distrito distrito in distritos)
                    distritoLB.Items.Add(distrito.Nome);

                Data.Localidade local = new Data.Localidade();


                foreach (Business.Distrito distrito in distritos)
                    localidadeLB.Items.Add(local.getLocalidadeDistrito(distrito.CodDistrito).Nome);
                map_canvas.Visible = false;
            }
        }

        protected void Button1_Click1(object sender, EventArgs e)
        {
            ListBox1.Items.Clear();

            Data.Localidade local = new Data.Localidade();

            Data.Curso cur = new Data.Curso();
            ArrayList cursos = new ArrayList();
            Business.Localidade localidade = new Business.Localidade(local.getLocalidadeNome(localidadeLB.SelectedItem.Text));

            
            cursos = cur.getCursosLocalidade(localidade.CodLocalidade);

            foreach (Business.Curso curso in cursos)
                ListBox1.Items.Add(curso.Nome);
        }

        protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            if (ListBox1.Items.Count < 1)
            {
                Response.Write("<script>alert('Pesquise um curso')</script>");
            }
            else
            {
                if (ListBox1.SelectedItem == null)
                    Response.Write("<script>alert('Seleccione um curso')</script>");
                else
                {
                    string nomeCur = ListBox1.SelectedItem.Text;

                    Data.Curso cur = new Data.Curso();
                    Business.Curso curso = new Business.Curso(cur.getCursoNome(nomeCur));

                    cursoTB.Text = curso.Nome;
                    Data.Area areap = new Data.Area();
                    Business.Area area = new Business.Area(areap.getArea(curso.Area.Cod_Area));
                    areaTB.Text = area.Nome;
                    Business.Localidade local = new Business.Localidade(curso.Localidade);
                    Data.Distrito dist = new Data.Distrito();
                    Business.Distrito distrito = new Business.Distrito(dist.getDistrito(local.Distrito.CodDistrito));
                    localidadeTB.Text = local.Nome;
                    distritoTB.Text = distrito.Nome;
                    moradaTB.Text = curso.Rua;
                    descricaoTB.Text = curso.Descricao;
                    vagasTB.Text = curso.Totalvagas.ToString();
                    vagasdTB.Text = curso.Nrinscritos.ToString();
                    renumeTB.Text = curso.Remuneracao.ToString();

                    click_lat.Value = curso.Latitude;
                    click_long.Value = curso.Longitude;
                    map_canvas.Visible = true;
                }
            }
        }

        protected void distritoLB_SelectedIndexChanged(object sender, EventArgs e)
        {
            localidadeLB.Items.Clear();
            Data.Localidade local = new Data.Localidade();
            ArrayList localidades = new ArrayList();
            Data.Distrito distrito = new Data.Distrito();
            Business.Distrito dist = new Business.Distrito(distrito.getDistritoNome(distritoLB.SelectedItem.Text));

            localidades = local.getLocalidadesDistrito(dist.CodDistrito);

            foreach (Business.Localidade localidade in localidades)
                localidadeLB.Items.Add(localidade.Nome);
        }

        protected void Button3_Click(object sender, EventArgs e)
        {
            Business.Login currUser = Program.Login;

            if (currUser != null)
            {
                if (cursoTB.Text.Equals(""))
                    Response.Write("<script>alert('Escolha um cuso')</script>");

                if (currUser.Tipo == Business.Login.EMPRESA)
                    Response.Write("<script>alert('Apenas disponivel para candidatos')</script>");
                else
                {

                    Business.Curso curso;

                    Data.Curso cursod = new Data.Curso();

                    curso = new Business.Curso(cursod.getCursoNome(cursoTB.Text));


                    int success = Business.GerirCandidatos.inserirCandidatoCurso(currUser.Username, curso.CodCurso);

                    if (success == Data.Ligacao.DBERROR)
                        Response.Write("<script>alert('Ocorreu um erro')</script>");
                    else
                    {
                        Response.Write("<script>alert('O candidato inscreveu-se no curso')</script>");
                    }


                }

            }
            else { Response.Write("<script>alert('Faça login')</script>"); }
        }
    }
}
